简单apk脱壳工具源码
0x00 序1
刚看f8大佬开源了自己的脱壳机(能脱下函数抽取)。敬佩之心油然而生。瞬间也想开源一下我写的垃圾代码 来骗几个赞:之前也写过dalvik版的脱壳机 可惜不能脱函数抽取 不过改一下应该可以吧。
0x01 序2
这个软件 涉及到的姿势有动态解析appminifest,xposed 和ndk 。ndk其实就是动态解析dex。
0x02 序3
代码这东西好久不看真的会忘。这个代码是8个月前写的。写的时候感觉印象很深。现在不让看代码 描述一下。真是描述不了。代码开源出来,希望有用。
0x03 工具介绍
本工具是一个apk软件,打开后listview显示手机上安装的所有用户apk(图标➕apk名字),然后可以选择需要脱壳apk,然后再运行需要脱壳apk。即可完成脱壳。
代码实现:
1. 解析选择apk的apkminifest,获取其包名,ApplicationName,MainActityName。
2. Xposed hook android.content.ContextWrapper attachBaseContext 得到壳的classloder
3. 根据classloder继续hook真正类的oncreate。
4. 继续根据classloader获取内存中的所有cookie。
5. 继续调用jni。根据cookie能转换成DexFile,然后其实就是解析dex文件了。
6. 在内存其实他的指向都是完整的。只不过没有在连续的地方。dump下来的也就不完整。那么我就分部dump。1。classdef之前的,2classdef之后的,3classdef4.classdata,5opcode然后修改指向组合。
项目难点:得完全掌握dex文件格式,才能分模块dump各个段,然后组合成dex
解析method的截图
0x04 代码
具体代码在github
https://github.com/skyun1314/hook_and_parse_dex2/tree/master/app
看雪ID:skyun
bbs.pediy.com/user-630232
本文由看雪论坛 skyun 原创
转载请注明来自看雪社区
热门技术文章推荐: